import java.util.Scanner;
import java.util.Stack;
import java.util.*;

public class Main {
    //给你一个整数数组 nums 和一个整数 k ，请你统计并返回 该数组中和为 k 的子数组的个数 。
    //
    //子数组是数组中元素的连续非空序列。

    public int subarraySum(int[] nums, int k) {
        //先创建一个哈徐表
        HashMap<Integer,Integer> map = new HashMap<>();
        //万一以i位置结尾的子数组的和刚好为k  那sum -k = 0    我们得提前在哈希表中存一个
        map.put(0,1);
        //定义一个变量 记录当前位置的前缀和
        int sum = 0;
        int count = 0;  //记录次数
        for(int i = 0; i < nums.length;i++) {
            //算一下当前位置的前缀和
            sum += nums[i];
            count += map.getOrDefault(sum - k,0);   //统计结果
            map.put(sum,map.getOrDefault(sum,0) + 1);   //把当前的前缀和放进哈希表

        }
        return count;
    }


    //给定一个整数数组 nums 和一个整数 k ，返回其中元素之和可被 k 整除的（连续、非空） 子数组 的数目。

    public int subarraysDivByK(int[] nums, int k) {
        //先创建一个哈希表
        Map<Integer,Integer> map = new HashMap<>();
        map.put(0,1);
        int sum = 0;
        int count = 0;
        for(int i = 0; i< nums.length;i++) {
            sum += nums[i];
            int mod = (sum % k +k) % k;
            count += map.getOrDefault(mod,0);
            map.put(mod,map.getOrDefault(mod,0) +1);

        }
        return count;
    }

    //连续数组
    public int findMaxLength(int[] nums) {
        //转化为求和为0 的最长子数组长度   把数组中的0全部转换为-1
        //先定义一个哈希表
        Map<Integer,Integer> map = new HashMap<>();
        //先初始化有一个前缀和默认为0的
        map.put(0,-1);

        int len = 0;
        int sum = 0;
        for(int i = 0; i < nums.length;i++) {
            sum += (nums[i] == 0 ? -1 : 1);
            //看看哈希表中有没有
            if(map.containsKey(sum)) {
                len = Math.max(len,i - map.get(sum));  //更新长度

            }else{
                //没有就添加进去哈希表
                map.put(sum,i);
            }
        }
        return len;
    }

    public static void main(String[] args) {
        //先输入
        Scanner scanner = new Scanner(System.in);
        //多组输入
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            //创建一个栈
            Stack<Integer> stack = new Stack<>();
            for (int i = 0; i < n; i++) {
                String s = scanner.next();
                char c = s.charAt(0);   //取出来运算
                if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {
                    //说明是运算符
                    int a = stack.pop();
                    int b = stack.pop();

                    switch (c) {
                        case '+':
                            stack.push(a+b);
                            break;
                        case '-':
                            stack.push(b-a);
                            break;
                        case '*':
                            stack.push(a*b);
                            break;
                        case '/':
                            stack.push(b/a);
                            break;
                    }
                }
                else {
                    //数字
                    stack.push(Integer.parseInt(s));  //转为数字
                }
            }
            System.out.println(stack.peek());
        }
    }


    //求除自身以外的数组的乘积
    public int[] productExceptSelf(int[] nums) {
        //先预处理两个数组  一个前缀积数组  一个后缀积数组
        int n = nums.length;
        int[] dp1 = new int[n];  //前缀积
        int[] dp2 = new int[n];  //后最积

        dp1[0] = 1;
        dp2[n-1] = 1;
        for(int i = 1;i < n; i++) {
            dp1[i] = dp1[i-1] * nums[i-1];
        }

        for(int i = n-2;i>=0;i--) {
            dp2[i] = dp2[i+1] * nums[i+1];
        }

        //使用这两个数组
        int[] ret = new int[n];
        for(int i = 0;i < n;i++) {
            ret[i] = dp1[i] * dp2[i];
        }
        return ret;
    }

    //找数组的中心下标
    public int pivotIndex(int[] nums) {
        //先预处理两个状态数组 一个前缀和数组   一个后缀和数组
        int n = nums.length;
        //创建两个数组
        int[] dp1 = new int[n];  //前缀和
        int[] dp2 = new int[n];   //后缀和

        for(int i = 1;i < n; i++) {
            dp1[i] = dp1[i-1] + nums[i-1];
        }

        for(int i = n - 2; i >= 0; i--) {
            dp2[i] = dp2[i+1] + nums[i+1];
        }


        //使用者两个数组
        for(int i = 0;i < n;i++) {
            if(dp1[i] == dp2[i]) {
                return i;
            }
        }
        return -1;
    }
    public static void main1(String[] args) {

    }
}
